package com.ruoyi.app.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * APP商城订单业务对象 app_goods_orders
 *
 * @author heike
 * @date 2023-03-02
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class AppGoodsOrdersBo extends BaseEntity {

    /**
     *
     */
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 外部订单号
     */
    private String externalOrderNo;

    /**
     * 订单价格
     */
    private BigDecimal totalPrice;

    /**
     * 收货人姓名
     */
    private String takeName;

    /**
     * 收货人手机号
     */
    private String takePhone;

    /**
     * 收货地址
     */
    private String takeAddress;

    /**
     * 支付时间
     */
    private Date payTime;

    /**
     * 物流名称
     */
    private String shipName;

    /**
     * 物流单号
     */
    private String shipCode;

    /**
     * 发货时间
     */
    private Date shipTime;

    /**
     * 运费
     */
    private BigDecimal shipPrice;

    /**
     * 支付类型
     */
    private String payType;

    /**
     * 订单状态 0=待支付 1=已支付 2=已发货 3=已收货 4=已取消
     */
    private String status;

    /**
     * 1=普通商品 2=积分商品
     */
    @NotBlank(message = "商品类型不能为空", groups = {AddGroup.class, EditGroup.class})
    private String type;

    /**
     * 取消订单时间
     */
    private Date cancelTime;

    /**
     * 备注名称
     */
    private String remark;


}
